﻿/*-----------------------------------------
 * Author : Tharinduni Udugamasuriya
 * Date : June 2014
 * Enum : To manage Enums
 ----------------------------------------*/

using DSPL.Contracts.Common;

namespace DSPL.Contracts
{

    public enum Modes
    {
        New,
        None,
        Edit,
        Delete,
        Approve,
        Print,
        Save,
        Undo,
        View,
        Cancel,
        First,
        Previous,
        Next,
        Last
    }

    public enum MessageText
    {
        [StringValue("Error occurred while Server List Loading")]
        ServerListLoadError = 1,
        [StringValue("Please select A Database Engine to continue")]
        DBNotSelected = 2,
        [StringValue("Error occurred while Server selecting")]
        ServerSelectingError = 3,
        [StringValue("Error occurred while Database Loading")]
        DataBaseLoadingError = 4,
        [StringValue("Error occurred while Database Settings Saving")]
        DataBaseSavingError = 5,
        [StringValue("Database Settings saved successfully")]
        DataBaseSavingSuccess = 6,
        [StringValue("Do you want to delete this record?")]
        MasterRecordDelete = 7,
        [StringValue("Invalid database settings found. Re-register database settings.")]
        InvalidDBSettings = 8,
        [StringValue("SP Parameter or Value cannot be null")]
        SPParameterCheck = 9,
        [StringValue("Query Type cannot be null")]
        QueryTypeCheck = 10,
        [StringValue("Table Name cannot be empty")]
        TableNameCheck = 11,
        [StringValue("Query String cannot be empty")]
        QueryStringCheck = 12,
        [StringValue("Current record data used in other transactions. Delete not allowed.")]
        DeleteNotAllowed = 13,
        [StringValue("Record deleted successfully")]
        DeletedSuccessfully = 14,
        [StringValue("Record saved successfully")]
        SavedSuccessfully = 15,
        [StringValue("Location Code cannot be empty.")]
        LocationNotEmpty = 16,
        [StringValue("Location Name cannot be empty.")]
        LocationNameNotEmpty = 17,
        [StringValue("Location Type cannot be empty.")]
        LocationTypeNotEmpty = 18,
        [StringValue("Supplier Code cannot be empty.")]
        SupplierNotEmpty = 19,
        [StringValue("Supplier Name cannot be empty.")]
        SupplierNameNotEmpty = 20,
        [StringValue("Supplier Account Code cannot be empty.")]
        SupplierAcCodeNotEmpty = 21,
        [StringValue("Advance A/C Code cannot be empty.")]
        SupplierAdvAcCodeNotEmpty = 22,
        [StringValue("Gain / Loss A/C Code cannot be empty.")]
        SupplierGainLossAcCodeNotEmpty = 23,
        [StringValue("Supplier Group cannot be empty.")]
        SupplierGroupNotEmpty = 24,
        [StringValue("Tax Code / Tax Registration No cannot be empty.")]
        TaxCodeRegNoNotEmpty = 25,
        [StringValue("Invalid Tax Data.")]
        InvalidTaxData = 26,
        [StringValue("Tax Code is duplicated.")]
        TaxCodeDuplicate = 27,
        [StringValue("Supplier Status cannot be empty.")]
        SupplierTypeNotEmpty = 28,
        [StringValue("Product Group Code cannot be empty.")]
        ProductGroupCodeNotEmpty = 29,
        [StringValue("Group Name cannot be empty.")]
        ProductGroupNameNotEmpty = 30,
        [StringValue("Product Type Code cannot be empty.")]
        ProductTypeCodeNotEmpty = 31,
        [StringValue("Product Type Name cannot be empty.")]
        ProductTypeNameNotEmpty = 32,
        [StringValue("Unit Code cannot be empty.")]
        UnitCodeNotEmpty = 33,
        [StringValue("Unit Name cannot be empty.")]
        UnitNameNotEmpty = 34,
        [StringValue("Reason Code cannot be empty.")]
        ReasonCodeNotEmpty = 35,
        [StringValue("Reason Name cannot be empty.")]
        ReasonNameNotEmpty = 36,
        [StringValue("Reason Type cannot be empty.")]
        ReasonTypeNotEmpty = 37,
        [StringValue("Error occured while saving.")]
        ErrorWhileSaving = 38,
        [StringValue("Area Code cannot be empty.")]
        AreaCodeNotEmpty = 39,
        [StringValue("Area Name cannot be empty.")]
        AreaNameNotEmpty = 40,
        [StringValue("Item Code cannot be empty.")]
        ItemCodeNotEmpty = 41,
        [StringValue("Item Name cannot be empty.")]
        ItemNameNotEmpty = 42,
        [StringValue("Tax Combination Code cannot be empty.")]
        TaxCombinationCodeNotEmpty = 43,
        [StringValue("Product Unit Code cannot be empty.")]
        ProductUnitCodeNotEmpty = 44,
        [StringValue("Vendor Product code cannot be duplicated.")]
        VendorCodeDuplicated = 45,
        [StringValue("Price Level cannot be empty.")]
        PriceLevelNotEmpty = 46,
        [StringValue("Purchase Account cannot be empty.")]
        PurchaseAcNotEmpty = 47,
        [StringValue("Purchase Return Account cannot be empty.")]
        PurchaseReturnAcNotEmpty = 48,
        [StringValue("Sales Account cannot be empty.")]
        SalesAcNotEmpty = 49,
        [StringValue("Sales Return Account cannot be empty.")]
        SalesReturnAcNotEmpty = 50,
        [StringValue("Closing Stock Account cannot be empty.")]
        ClosingStockNotEmpty = 51,
        [StringValue("Stock In Hand Account cannot be empty.")]
        StockInHandNotEmpty = 52,
        [StringValue("Default price level cannot be empty.")]
        DefaultPriceNotEmpty = 53,
        [StringValue("Attachment folder does not exist.")]
        AttachFolderNotEixst= 54,
        [StringValue("Default price level cannot be empty.")]
        DefaultPriceLevelNotEmpty = 55,
        [StringValue("Card Type Code cannot be empty.")]
        CardTypeNotEmpty = 56,
        [StringValue("Card Name cannot be empty.")]
        CardNameNotEmpty = 57,
        [StringValue("Delete\\Edit not allowed")]
        EmptyTableDeleteEditBlock = 58,
        [StringValue("Error occurred while deleting/copying attachments.")]
        ErrorCopyingAttachment = 59,
        [StringValue("Supplier Group Code cannot be empty.")]
        SupplierGroupCodeNotEmpty = 60,
        [StringValue("Supplier Group Name cannot be empty.")]
        SupplierGroupNameNotEmpty = 61,
        [StringValue("Customer Group Code cannot be empty.")]
        CustomerGroupCodeNotEmpty = 62,
        [StringValue("Customer Group Name cannot be empty.")]
        CustomerGroupNameNotEmpty = 63,
        [StringValue("Rank Code cannot be empty.")]
        RankCodeNotEmpty = 64,
        [StringValue("Rank Name cannot be empty.")]
        RankNameNotEmpty = 65,
        [StringValue("Sales Representative Code cannot be empty.")]
        RepCodeNotEmpty = 66,
        [StringValue("Sales Representative Name cannot be empty.")]
        RepNameNotEmpty = 67,
        [StringValue("Sales Representative ID cannot be empty.")]
        RepIdNoNotEmpty = 68,
        [StringValue("Sales Representative Address cannot be empty.")]
        RepAddressNotEmpty = 69,
        [StringValue("Debtor Code cannot be empty.")]
        DebtorCodeNotEmpty = 70,
        [StringValue("Debtor Name cannot be empty.")]
        DebtorNameNotEmpty = 71,
        [StringValue("Debtor Account Code cannot be empty.")]
        DebtorAcCodeNotEmpty = 72,
        [StringValue("Debtor Advance Account Code cannot be empty.")]
        DebtorAdvAcCodeNotEmpty = 73,
        [StringValue("Debtor Gain / Loss Account Code cannot be empty.")]
        DebtorGainLossAcCodeNotEmpty = 74,
        [StringValue("Debtor Status cannot be empty.")]
        DebtorTypeNotEmpty = 75,
        [StringValue("Debtor Group Code cannot be empty.")]
        DebtorGroupCodeNotEmpty = 76,
        [StringValue("No Data found for selected filter option(s).")]
        FilterDataNotFound = 77,
        [StringValue("Currency Code is duplicated.")]
        CurrencyCodeDuplicate = 78,
        [StringValue("Tax Code cannot be empty.")]
        TaxCodeNotEmpty = 79,
        [StringValue("Tax Name cannot be empty.")]
        TaxNameNotEmpty = 80,
        [StringValue("Receivable Account cannot be empty.")]
        ReceivableAcNotEmpty = 81,
        [StringValue("Payable Account cannot be empty.")]
        PayableAcNotEmpty = 82,
        [StringValue("Tax Percent cannot be empty.")]
        TaxPercentNotEmpty = 83,
        [StringValue("Reference No cannot be empty.")]
        ReferenceNoNotEmpty = 84,
        [StringValue("Currency Code cannot be empty.")]
        CurrencyCodeNotEmpty = 85,
        [StringValue("Cost Code cannot be empty.")]
        CostCodeNotEmpty = 86,
        [StringValue("Purchase Order No cannot be empty.")]
        PurchaseOrderNoNotEmpty = 87,
        [StringValue("Currency Rate cannot be zero.")]
        CurrencyRateNotZero = 88,
        [StringValue("Transaction Date cannot be empty.")]
        TransactionDateNotEmpty = 89,
        [StringValue("Invoice No cannot be empty.")]
        InvoiceNoNotEmpty = 90,
        [StringValue("Filter is in use. Do you want to cancel the filter and proceed?")]
        InquireProceedWithFilterExists = 91,
        [StringValue("Do you want to delete this record?")]
        InquireDeletion = 92,
        [StringValue("Unique Key Value(s) already exists. Can not proceed.")]
        UniqueKeyExists = 93,
        [StringValue("Sales Representative is inactive.")]
        SalesRepInactive = 94,
        [StringValue("Price Level is inactive.")]
        PriceLevelInactive = 95,
        [StringValue("Currency Description cannot be empty.")]
        CurrencyDescriptionNotEmpty = 96,
        [StringValue("Invalid currency rate range.")]
        InvalidCurrencyRateRange = 97,
        [StringValue("Currency Code/Price Level Code cannot be empty.")]
        CurCodePriceCodeNotEmpty = 98,
        [StringValue("Currency From Rate cannot be zero.")]
        FromRateNotZero = 99,
        [StringValue("Currency To Rate cannot be zero.")]
        ToRateNotZero = 100,
        [StringValue("Price Level Description cannot be empty.")]
        PriceLevelNameNotEmpty = 101,
        [StringValue("Tax Combination Code cannot be empty.")]
        TaxCombCodeNotEmpty = 101,
        [StringValue("Tax Combination Name cannot be empty.")]
        TaxCombNameNotEmpty = 102,
        [StringValue("Cost Description cannot be empty.")]
        CostNameNotEmpty = 103,
        [StringValue("Prior Level cannot be empty.")]
        PriorLevelNotEmpty = 104,
        [StringValue("Chart of Accounts Data not selected for the Cost Centre.\n Do you want to save?")]
        InvalidChartAccounts = 105,
        [StringValue("Cost Code is duplicated.")]
        CostCodeDuplicate = 106,
        [StringValue(" Cost Code has been allocated as another Level.")]
        CostCodeAllocated = 107,
        [StringValue("Consolidated Cost Centre can not be deleted prior to other Cost Centers.")]
        ConsolidatedCostCode = 108,
        [StringValue("Chart of Accounts already exists for the selected Cost Centre.\n Do you want to overwite ?")]
        ChartOfAccountsExists = 109,
        [StringValue("User do not have permission to enter data for the Location.")]
        UserwiseInvalidLocation = 110,
        [StringValue("Account Code is being used.Cannot deselect.")]
        AccountUsed = 111,
        [StringValue("Invalid Cost code prior level")]
        InvalidPriorLevel = 112,
        [StringValue("No valid data to save.")]
        NoValidData = 113,
        [StringValue("Delivery Date cannot be blank.")]
        DeliveryDateNotEmpty = 114,
        [StringValue("Expected Delivery Date cannot be less than the PO transaction date.")]
        InvalidDeliveryDate = 115,
        [StringValue("Supplier is not active .")]
        SupplierNotActive = 116,
        [StringValue("Tax Combination Code is not active.")]
        TaxCombinationNotActive = 117,
        [StringValue("Inactive item is selected. Please change to enter transactions.")]
        InactiveItemFound = 118,
        [StringValue("Item Code is duplicated. Please change to enter transactions.")]
        ItemCodeDuplicated = 119,
        [StringValue("Purchase Order is a must for GRN. Purchase Order No can not be blank.")]
        PoNoGrnNotEmpty = 120,
        [StringValue("GRN Date cannot be less than PO Date")]
        GrnDateLessThanPoDate = 121,
        [StringValue("GRN already approved cannot edit")]
        GrnCannotEdit = 122,
        [StringValue("Invalid data records in grid. Do you want to save ? (Invalid data will be omitted at saving time.")]
        InvalidGridRecordOmit = 123,
        [StringValue("Do you want to Approve This Entry ?")]
        ApproveEntry = 124,
        [StringValue("Do you want to view Approved Transaction?")]
        InquireLoadApproved = 125,
        [StringValue("Debtor is not active.")]
        DebtorNotActive = 126,
        [StringValue("Quotation has been already Allocated to a Sales Order.")]
        QuotationAlreadyAllocated = 127,
        [StringValue("Sales Order date cannot be less than the Quotation date.")]
        OrderDateLessThanQuotation = 128,
        [StringValue("Sales Order has already been allocated to invoice.")]
        SalesOrderAllocated = 129,
        [StringValue("SalesRep Code cannot be empty.")]
        SalesRepNotEmpty = 130,
        
        
             
        
    }

    public enum MessageType
    {
        ErrOK,
        InfoOK,
        QuizOKCancel,
        QuizYesNo,
        QuizYesNoCancel,
        WarningOK,
        None
    }

    public enum QLogicOperator
    {
        AND,
        OR
    }

    public enum QDataType
    {
        TEXT,
        NUMERIC,
        DATETIME,
        BOOLEAN
    }

    public enum QueryType
    {
        SELECT,
        SELECTALL,
        SELECTTOPN,
        SELECTTOPNALL,
        SELECTDISTINCT,
        SELECTOTHER,
        INSERT,
        UPDATE,
        DELETE,
        OTHER,
        NONE
    }

    public enum QOrderby
    {
        ASCENDING,
        DESCENDING
    }

    public enum QComparison
    {
        EQUALS,
        NOTEQUAL,
        LIKE,
        NOTLIKE,
        IN,
        NOTIN,
        LESSTHAN,
        GREATERTHAN,
        LESSTHANEQUAL,
        GREATERTHANEQUAL
    }

    public enum QJoinType
    {
        INNERJOIN,
        FULLOUTERJOIN,
        LEFTOUTERJOIN,
        RIGHTOUTERJOIN,
        CROSSJOIN
    }

    public enum OrderbyOptions
    {
        DefaultOrder,
        NoOrder,
        CustomOrder
    }

    public enum ReportFolder
    {
        Default,
        StockMaster,
        StockTransaction,
        StockReport
    }

    public enum HelpNames
    {
        Default,
        AreaHelp,
        SalesRepHelp,
        RankHelp,
        DebtorGrpHelp,
        PriceLevelHelp,
        TaxHelp,
        BankAccountsHelp,
        ProductGroupHelp,
        TypeHelp,
        TaxHedHelp,
        UnitHelp,
        PriLvlHelp,
        AltPriLvlHelp,
        PurchaseAcHelp,
        SalesAccHelp,
        DiscountAccHelp,
        StockInHandAccHelp,
        CurrencyHelp,
        PettyCashHelp,
        CreditorGrpHelp,
        SupplierHelp,
        AltSupplierHelp,
        UserCostHelp,
        LocationHelp,
        DebtorHelp,
        ReasonHelp,
        TaxReceivableAccHelp,
        ItemsHelp,
        GRNHedHelp,
        CostCentreHelp,
        AllLocationsHelp,
        ActiveDebtorAllDetailsHelp,
        ActiveSupplierAllDetailsHelp,
        BankHelp,
        AllSalesRepHelp,
        CostCenterDescriptiveHelp,
        EditPurchaseOrderHelp,
        AllocatePurchaseOrderHelp, 
        ApprovedPurchaseOrderHelp,
        UnApprovedPurchaseOrderHelp,
        AllPurchaseOrderHelp,
        AllGoodReceiveNoteHelp,
        TemporaryGoodReceiveNoteHelp,
        AllTempPurchaseOrderHelp,
        AllGoodReceiveReturnNoteHelp,
        GRNRStkHelp,
        AllQuotationHelp,
        PoHedHelp,
        SalesOrderHelp,

        PoDetHelp,
        PoDetHelpTemp
    }

    public enum FileFilters
    {
        ImageFiles,
        DocFiles,
        ExelFiles,
        PdfFiles,
        All
    }
}
